Kiến trúc Android Debug Bridge

Giao thức adb có thể được truyền qua USB hoặc qua Wi-Fi thông qua TCP. It uses a kiến ​​trúc máy khách-máy chủ. Có hai giao thức khác nhau được sử dụng. Đầu tiên là giữa máy khách và máy chủ và thứ hai là giữa máy chủ và daemon. Adb daemon được triển khai trong C à nằm trong không gian người dùng Android. Daemon được hỗ trợ bởi Android USB framework, UsbDeviceManagerUsbDebuggingManager.[5]

Máy khách ↔ giao thức máy chủ

Chế độ giao tiếp giữa máy khách và máy chủ là một TCP socket. Máy chủ lắng nghe trên một cổng mà máy khách phải gửi yêu cầu. Yêu cầu chứa trường ban đầu 4 byte trong ASCII và payload. Payload bắt đầu bằng từ máy chủ,để cho biết nó sẽ được gửi đến máy chủ. Sau đó, máy chủ có thể trả lời bằng OKAY hoặc FAIL để cho biết trạng thái, kết hợp với payload và độ dài tùy chọn.[5]

Máy chủ ↔ giao thức daemon

Các tin nhắn được gửi từ máy chủ bao gồm một tiêu đề dài 24 byte, với các trường sau:[5]

  • Lệnh
  • Argument đầu tiên
  • Argument thứ hai
  • Độ dài của payload, 0 hoặc cao hơn
  • CRC32 của payload đó
  • Magic value, được tính thông qua lệnh XOR 0xFFFFFFFF